/*
 * TileBG - code to handle the background tiles as a single image
 *
 * Copyright 2007 James W. Hofmann
 *
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 */

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.PixelSnapping;
import flash.geom.Point;
import lib3f.IntPoint;
import flash3f.Images;

class TileBG extends Bitmap
// The first bitmap layer containing the landscape. Generated from "Game.cur.map.terrain".
{

	public function new()
	{
		super();
		pixelSnapping = PixelSnapping.ALWAYS;
		smoothing = true;
		//build();
	}

	public function build()
	{
		if (bitmapData==null) {
			bitmapData = new BitmapData(680, 425, true, 0x000008);
		}
	
		//bitmapData.fillRect(bitmapData.rect,0x000008);
		
		var idlist : Array <Int> = new Array();
		var poslist : Array <Point> = new Array();
				
		var mapsize : IntPoint = Graph.getsize(Game.cur.map);
		
		for (x in 0...mapsize.x)
		{
			for (y in 0...mapsize.y)
			{
				var curt : Int = Game.cur.map[x][y].terrain;
				if (curt>=0)
				{
					idlist.insert(0,(curt));
					poslist.insert(0,IsoMetrics.tiletopix_xy(x,y));
				}
			}
		}
		Images.compose(bitmapData,idlist,poslist);
	
	}
}
